﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using Microsoft.ApplicationBlocks.Data;
using Entities;

namespace DAL
{
    public class NegocioPlanDeServicioDAL
    {
        static string strCadenaConexion = System.Configuration.ConfigurationManager.ConnectionStrings["ConexionBaseDesarrollo"].ConnectionString;

        public static long Nuevo(NegocioPlanDeServicio parNegocioPlanDeServicio)
        {
            long longRetorno = 0;
            try
            {
                longRetorno =  long.Parse(SqlHelper.ExecuteScalar(strCadenaConexion,
                "spNegocioPlanDeServicioNuevo",
                parNegocioPlanDeServicio.PlanDeServicio.IDPlanServicio,
                parNegocioPlanDeServicio.Negocio.IDNegocio,
                parNegocioPlanDeServicio.Precio,
                parNegocioPlanDeServicio.FechaDesde,
                parNegocioPlanDeServicio.FechaHasta
                ).ToString());
                return longRetorno;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        public static void Eliminar(long parIDNegocioPlanDeServicio)
        {
            try
            {
                // (strCadenaConexion,spNegocioPlanDeServicioEliminar,parIDNegocioPlanDeServicio);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static NegocioPlanDeServicio ObtenerUno(long parIDNegocioPlanServicio)
        {
            try
            {
                NegocioPlanDeServicio oNegocioPlanDeServicio = new NegocioPlanDeServicio();
                DataTable dt = new DataTable();
                //dt = (strCadenaConexion,spNegocioPlanDeServicioObtenerUno,parIDNegocioPlanServicio).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    oNegocioPlanDeServicio.IDNegocioPlanDeServicio = long.Parse(dt.Rows[0]["IDNegocioPlanDeServicio"].ToString());
                    oNegocioPlanDeServicio.PlanDeServicio = PlanServicio.ObtenerUno(long.Parse(dt.Rows[0]["IDPlanDeServicio"].ToString()));
                    oNegocioPlanDeServicio.Negocio = Negocio.BuscarUno(long.Parse(dt.Rows[0]["IDNegocio"].ToString()), false);
                    oNegocioPlanDeServicio.Precio = decimal.Parse(dt.Rows[0]["PrecioAnual"].ToString());
                    oNegocioPlanDeServicio.FechaDesde = DateTime.Parse(dt.Rows[0]["FechaDesde"].ToString());
                    oNegocioPlanDeServicio.FechaHasta = DateTime.Parse(dt.Rows[0]["FechaHasta"].ToString());
                }
                return oNegocioPlanDeServicio;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static NegocioPlanDeServicio ObtenerPlanDeServicioVigente (long parIDNegocio, DateTime parFechaBusqueda)
        {
            try
            {
                NegocioPlanDeServicio oNegocioPlanDeServicio = new NegocioPlanDeServicio();
                DataTable dt = new DataTable();
                dt = SqlHelper.ExecuteDataset(strCadenaConexion, "spNegocioPlanDeServicioObtenerPlanVigente", parIDNegocio, parFechaBusqueda).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    oNegocioPlanDeServicio.IDNegocioPlanDeServicio = long.Parse(dt.Rows[0]["IDNegocioPlanDeServicio"].ToString());
                    oNegocioPlanDeServicio.PlanDeServicio = PlanServicio.ObtenerUno(long.Parse(dt.Rows[0]["IDPlanDeServicio"].ToString()));
                    oNegocioPlanDeServicio.Negocio = Negocio.BuscarUno(long.Parse(dt.Rows[0]["IDNegocio"].ToString()), false);
                    oNegocioPlanDeServicio.Precio = decimal.Parse(dt.Rows[0]["Precio"].ToString());
                    oNegocioPlanDeServicio.FechaDesde = DateTime.Parse(dt.Rows[0]["FechaDesde"].ToString());
                    oNegocioPlanDeServicio.FechaHasta = DateTime.Parse(dt.Rows[0]["FechaHasta"].ToString());
                }
                return oNegocioPlanDeServicio;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
